package demo.day11

// Kotlin 定义扩展函数学习
fun main() {
    val p = KtBaseDay11_07("Kiki", 18, 'm')
    p.show()
    println("<------------------------------->")
    p.getInfo()
    println("add".addExtAction(8))
    println("<------------------------------->")
    "如果我是鸵鸟 我就是那火鸟 把你燃烧".showStr()
}

// 假设这个代码是开源的 或者是很庞大的JDK源码 或者是非常复杂的开源库
class KtBaseDay11_07(val name: String, val age: Int, val sex: Char)

// 增加扩展函数
fun KtBaseDay11_07.show() {
    println("我是show函数，name:$name,age:$age,sex:$sex")
}

// 扩展函数 会持有对象本身
fun KtBaseDay11_07.getInfo() = println("我是getInfo函数，name:$name,age:$age,sex:$sex")

fun String.addExtAction(num: Int) = this + "@".repeat(num)
fun String.showStr() = println(this)